Robot control device, robot, and simulation device

ABSTRACT

A robot control device according to an aspect of the invention is a robot control device that controls a robot on the basis of a simulation result of a simulation device that performs a simulation of operation of a virtual robot on a virtual space. In the simulation, a first region and a second region located on an inside of the first region can be set on the virtual space. In the case where the virtual robot operates, when a specific portion of the virtual robot intrudes into the first region, operating speed of the virtual robot is limited. When the specific portion of the virtual robot intrudes into the second region, the operation of the virtual robot stops or the virtual robot retracts from the second region.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation patent application of U.S. application Ser. No.15/467,176, filed Mar. 23, 2017, which claims priority to JapanesePatent Application No. 2016-066201, filed Mar. 25, 2016, and JapanesePatent Application No. 2016-068260, filed Mar. 30, 2016 all of which areincorporated by reference herein in their entireties.

BACKGROUND 1. Technical Field

The present invention relates to a robot control device, a robot, and asimulation device.

2. Related Art

Researches and developments of a technique for virtually simulating theoperation of a robot control device that controls a robot have beenperformed.

Concerning the technique, there has been known a robot simulation devicethat moves a virtual robot along a track, the robot simulation deviceperforming, at an interrupt interval, a track calculation process forcalculating a track after a sampling time of the virtual robot andindividually changing both of the sampling time and the interruptinterval in a range in which the sampling time is equal to or shorterthan the interrupt interval (see, for example, JP-A-2012-135821 (PatentLiterature 1)).

There has been known a robot including a base and a manipulatorincluding a plurality of arms (links). One arm of two arms adjacent toeach other of the manipulator is turnably coupled to the other arm via ajoint section. An arm on the most proximal end side (on the mostupstream side) is turnably coupled to the base via a joint section. Thejoint sections are driven by motors. The arms turn according to thedriving of the joint sections. For example, a hand is detachablyattached to an arm on the most distal end side (on the most downstreamside) as an end effector. For example, the robot grips a target objectwith the hand, moves the target object to a predetermined place, andperforms predetermined work such as assembly.

As a robot control device that controls the operation of such a robot,there has been disclosed a device that defines a virtual safety fenceset on the inner side of a real safety fence and two or morethree-dimensional space regions set to include a wrist of the robot and,work, a tool, or the like included in the wrist and controls the robot(see, for example, JP-A-2004-322244 (Patent Literature 2)).

The robot control device collates predicted positions on trackcalculation in the three-dimensional space regions and the virtualsafety fence and, when any one of the three-dimensional space regionsintrudes into the virtual safety fence, stops the operation of therobot. Consequently, it is possible to suppress collision of the robotand the real safety fence.

However, in the robot simulation device described in Patent Literature1, the interrupt interval sometimes changes according to other interruptprocessing. As a result, a shift sometimes occurs between time when therobot simulation device causes the robot to perform predetermined workand time when a real robot control device causes a real robot to performthe work.

In the robot control device described in Patent Literature 2, even ifstop operation of the robot is started when the three-dimensional spaceregion intrudes into the virtual space fence, for example, when theoperating speed of the robot is high, it is likely that the robot cannotinstantaneously stop and collides with the safety fence.

SUMMARY

An advantage of some aspects of the invention is to solve at least apart of the problems described above, and the invention can beimplemented as the following forms or application examples.

A robot control device according to an aspect of the invention is arobot control device that controls a robot on the basis of a simulationresult of a simulation device that performs a simulation of operation ofa virtual robot on a virtual space. In the simulation, a first regionand a second region located on an inside of the first region can be seton the virtual space. In the case where the virtual robot operates, whena specific portion of the virtual robot intrudes into the first region,operating speed of the virtual robot is limited. When the specificportion of the virtual robot intrudes into the second region, theoperation of the virtual robot stops or the virtual robot retracts fromthe second region.

With this configuration, for example, when the first region and thesecond region are set to surround a virtual object with which the robotis desired to not be caused to collide and the simulation is performed,it is possible to operate the robot without causing the robot to collidewith an object with which the robot is desired to not be caused tocollide such as a peripheral device. Therefore, safety is high.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, the first region and the secondregion surround a predetermined object on the virtual space.

With this configuration, for example, when the predetermined object isset as a virtual object with which the predetermined object is desiredto not be caused to collide and the simulation is performed, it ispossible to suppress the virtual robot from colliding with the virtualobject with which the virtual robot is desired to not be caused tocollide such as a virtual peripheral device. Therefore, it is possibleto operate the robot without causing the robot to collide with an objectwith which the robot is desired to not be caused to collide.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, the first region and the secondregion can be set on the basis of a coordinate system different from aworld coordinate system.

With this configuration, it is possible to set coordinate axes in anydirections. Therefore, convenience is high. Therefore, it is possible toeasily provide a high-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, a predetermined object on thevirtual space can be semi-transparently displayed.

With this configuration, it is possible to easily visually recognize theinside of the virtual object. It is possible to easily perform thesimulation. Therefore, it is possible to easily provide ahigh-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, transparency of thesemi-transparently displayed object can be set.

With this configuration, it is possible to adjust a balance ofvisibility of the contour and visibility of the inside of the virtualobject. It is possible to easily perform the simulation. Therefore, itis possible to easily provide a high-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, when the predetermined object onthe virtual space and the virtual robot come into contact with eachother, a first mark different from the object and the virtual robot isdisplayed in a contact portion of the object and the virtual robot.

With this configuration, it is possible to easily grasp a contactportion of the virtual object and the virtual robot. Therefore, it ispossible to easily perform setting of a moving route of the virtualrobot, disposition of a virtual peripheral device, and the like.Therefore, it is possible to easily provide a high-performance robotcontrol device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, a semitransparent second marksurrounding the first mark is displayed.

With this configuration, it is possible to more easily grasp the contactportion of the virtual object and the virtual robot. Therefore, it ispossible to easily provide a high-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, a coordinate of the contactportion is displayed.

With this configuration, it is possible to quantitatively, easily, andaccurately grasp a position of a contact portion of the virtual objectand the virtual robot. Therefore, it is possible to easily provide ahigh-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, a first margin can be set in thevirtual robot on the basis of a shape of the virtual robot, a secondmargin can be set in the object on the basis of a shape of thepredetermined object on the virtual space, and, when the virtual robotoperates, if the first margin and the second margin come into contactwith each other, operating speed of the virtual robot is limited,operation of the virtual robot stops, or the virtual robot retracts in adirection in which the first margin separates from the second margin.

With this configuration, for example, when the second margin is set in avirtual object with which the robot is desired to not be caused tocollide and the simulation is performed, it is possible to suppress thevirtual robot from colliding with the virtual object with which thevirtual robot is desired to not be caused to collide such as a virtualperipheral device or another virtual robot. Therefore, it is possible tooperate the robot without causing the robot to collide with an objectwith which the robot is desired to not be caused to collide such as aperipheral device or another robot.

In the robot control device according to the aspect of the invention, itis preferable that, in the simulation, thickness of the first margin andthickness of the second margin can be changed.

With this configuration, for example, when the first region and thesecond region are set to surround a virtual object with which the robotis desired to not be caused to collide and the simulation is performed,it is possible to suppress the virtual robot from colliding with thevirtual object with which the virtual robot is desired to not be causedto collide such as a virtual peripheral device. It is possible tosuppress the thickness of the first margin or the second margin frombecoming excessively large to hinder work of the virtual robot.Therefore, it is possible to operate the robot without causing the robotto collide with an object with which the robot is desired to not becaused to collide such as a peripheral device. It is possible tosuppress the thickness of the first margin or the second margin frombecoming excessively large to hinder work of the robot.

In the robot control device according to the aspect of the invention, itis preferable that the virtual robot includes a virtual manipulator,and, in the simulation, a movable range of a specific portion of thevirtual manipulator can be displayed.

With this configuration, it is possible to easily grasp the movablerange of the specific portion of the virtual manipulator. Therefore, itis possible to easily provide a high-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that the virtual manipulator includes a plurality ofvirtual arms provided to be capable of turning, and, in the simulation,for each of the virtual arms, a movable range of the specific portion ofthe virtual manipulator at the time when the virtual arm is turned canbe displayed.

With this configuration, it is possible to easily grasp, for each of thevirtual arms, the movable range of the specific portion of the virtualmanipulator at the time when the virtual arm is turned. Therefore, it ispossible to easily provide a high-performance robot control device.

In the robot control device according to the aspect of the invention, itis preferable that the specific portion of the virtual manipulator is adistal end of the virtual manipulator.

With this configuration, it is possible to easily grasp the movablerange of the distal end of the virtual manipulator. Therefore, it ispossible to easily provide a high-performance robot control device.

A robot according to an aspect of the invention is controlled by therobot control device according to the aspect of the invention.

With this configuration, it is possible to suppress the robot fromcolliding with an object with which the robot is desired to not becaused to collide such as a peripheral device. It is possible to providethe robot having the advantage of the robot control device according tothe aspect of the invention that, for example, safety is high.

A simulation device according to an aspect of the invention is asimulation device that performs a simulation of operation of a virtualrobot on a virtual space. In the simulation, a first region and a secondregion located on an inside of the first region can be set on thevirtual space. In the case where the virtual robot operates, when aspecific portion of the virtual robot intrudes into the first region,operating speed of the virtual robot is limited. When the specificportion of the virtual robot intrudes into the second region, theoperation of the virtual robot stops or the virtual robot retracts fromthe second region.

With this configuration, in the simulation of the operation of thevirtual robot on the virtual space, for example, when the first regionand the second region are set to surround a virtual object with whichthe robot is desired to not be caused to collide, it is possible tosuppress the virtual robot from colliding with a virtual object withwhich the virtual robot is desired to not be caused to collide such as avirtual peripheral device.

An aspect of the invention is directed to a robot control device thatcontrols a robot on the basis of a simulation result of a simulationdevice that perform a simulation of operation of a virtual robot controldevice on a virtual space. In the simulation performed by the simulationdevice, a difference between time when the virtual robot control deviceperforms predetermined first operation and time when the robot controldevice corresponding to the virtual robot control device performs secondoperation corresponding to the first operation is shorter than 1millisecond.

With this configuration, the robot control device controls the robot onthe basis of the simulation result of the simulation device thatperforms the simulation in which the difference between the time whenthe virtual robot control device performs the predetermined firstoperation and the time when the robot control device corresponding tothe virtual robot control device performs the second operationcorresponding to the first operation is shorter than 1 millisecond.Consequently, the robot control device can suppress a shift betweentiming when the virtual robot control device performs the firstoperation and timing when the robot control device performs the secondoperation.

In another aspect of the invention, the robot control device may beconfigured such that the first operation is acquisition of informationfrom a peripheral device connected to the simulation device, and thesecond operation is acquisition of the information from the peripheraldevice connected to the robot control device.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that performsa simulation in which a difference between time when the virtual robotcontrol device performs the acquisition of the information from theperipheral device connected to the simulation device as the firstoperation and time when the robot control device performs theacquisition of the information from the peripheral device connected tothe robot control device as the second operation corresponding to thefirst operation is shorter than 1 millisecond. Consequently, the robotcontrol device can suppress a shift between the time when the robotcontrol device performs the acquisition of the information from theperipheral device connected to the robot control device and the timewhen the virtual robot control device performs the acquisition of theinformation from the peripheral device connected to the simulationdevice.

In another aspect of the invention, the robot control device may beconfigured such that the virtual robot control device controls a virtualrobot on the basis of the information from the peripheral deviceacquired by the first operation.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that performsa simulation in which the virtual robot control device controls thevirtual robot on the basis of the information from the peripheral deviceacquired by the first operation. Consequently, the robot control devicecan suppress a shift between the time when the robot control devicecontrols the robot on the basis of the information from the peripheraldevice acquired by the second operation and the time when the virtualrobot control device controls the virtual robot on the basis of theinformation from the peripheral device acquired by the first operation.

In another aspect of the invention, the robot control device may beconfigured such that the first operation is an output of information toa peripheral device connected to the simulation device, and the secondoperation is an output of the information to the peripheral deviceconnected to the robot control device.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that performsa simulation in which a difference between time when the virtual robotcontrol device performs the output of the information to the peripheraldevice connected to the simulation device as the first operation andtime when the robot control device performs the output of theinformation to the peripheral device connected to the robot controldevice as the second operation corresponding to the first operation isshorter than 1 millisecond. Consequently, the robot control device cansuppress a shift between the time when the robot control device performsthe output of the information to the peripheral device connected to therobot control device and the time when the virtual robot control deviceperforms the output of the information to the peripheral deviceconnected to the simulation device.

In another aspect of the invention, the robot control device may beconfigured such that the simulation device clocks an elapsed time on thebasis of a quotient and a remainder obtained when a number based on anacquired clock number is divided by a predetermined clock numberassociated with a predetermined time.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that clocksthe elapsed time on the basis of the quotient and the remainder obtainedwhen the number based on the acquired clock number is divided by thepredetermined clock number associated with the predetermined time.Consequently, the robot control device can suppress a shift between anelapsed time clocked by the robot control device and the elapsed timeclocked by the simulation device.

In another aspect of the invention, the robot control device may beconfigured such that the number based on the clock number is adifference between the clock number acquired in last processing and theclock number acquired in present processing.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that clocksthe elapsed time on the basis of the quotient and the remainder obtainedwhen the difference between the clock number acquired in the lastprocessing and the clock number acquired in the present processing isdivided by the predetermined clock number associated with thepredetermined time. Consequently, the robot control device can suppress,on the basis of the difference between the clock number acquired in thelast processing and the clock number acquired in the present processing,a shift between an elapsed time clocked by the robot control device andthe elapsed time clocked by the simulation device.

In another aspect of the invention, the robot control device may beconfigured such that the predetermined time is equal to or shorter than1 millisecond.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that clocksthe elapsed time on the basis of the quotient and the remainder obtainedwhen the difference between the clock number acquired in the lastprocessing and the clock number acquired in the present processing isdivided by the predetermined clock number associated with the time equalto or shorter than 1 millisecond. Consequently, the robot control devicecan suppress a shift between an elapsed time clocked by the robotcontrol device and the elapsed time clocked by the simulation device tobe shorter than 1 millisecond.

In another aspect of the invention, the robot control device may beconfigured such that the predetermined time is equal to or shorter than0.5 millisecond.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that clocksthe elapsed time on the basis of the quotient and the remainder obtainedwhen the difference between the clock number acquired in the lastprocessing and the clock number acquired in the present processing isdivided by the predetermined clock number associated with the time equalto or shorter than 0.5 millisecond. Consequently, the robot controldevice can suppress a shift between an elapsed time clocked by the robotcontrol device and the elapsed time clocked by the simulation device tobe shorter than 0.5 millisecond.

In another aspect of the invention, the robot control device may beconfigured such that the predetermined time is equal to or shorter than0.1 millisecond.

With this configuration, the robot control device controls the robot onthe basis of a simulation result of the simulation device that clocksthe elapsed time on the basis of the quotient and the remainder obtainedwhen the difference between the clock number acquired in the lastprocessing and the clock number acquired in the present processing isdivided by the predetermined clock number associated with the time equalto or shorter than 0.1 millisecond. Consequently, the robot controldevice can suppress a shift between an elapsed time clocked by the robotcontrol device and the elapsed time clocked by the simulation device tobe shorter than 0.1 millisecond.

Another aspect of the invention is directed to a robot controlled by therobot control device described above.

With this configuration, the robot is controlled on the basis of thesimulation result of the simulation device that performs the simulationin which the difference between the time when the virtual robot controldevice performs the predetermined first operation and the time when therobot control device performs the second operation corresponding to thefirst operation is shorter than 1 millisecond. Consequently, the robotcan suppress a shift between timing when the robot is caused to performpredetermined operation by the robot control device and timing when avirtual robot is caused to perform the operation by the virtual robotcontrol device.

Another aspect of the invention is directed to a simulation device thatperforms a simulation of operation of the virtual robot control deviceon a virtual space. A difference between time when the virtual robotcontrol device performs predetermined operation and time when a realrobot control device corresponding to the virtual robot control deviceperforms the predetermined operation is shorter than 1 millisecond.

With this configuration, the simulation device performs the simulationin which the difference between the time when the virtual robot controldevice performs the predetermined operation and the time when a realrobot control device corresponding to the virtual robot control deviceperforms the predetermined operation is shorter than 1 millisecond.Consequently, the simulation device can suppress a shift between timingwhen the virtual robot control device performs first operation andtiming when the robot control device performs second operation.

As explained above, the robot control device controls the robot on thebasis of the simulation result of the simulation device that performsthe simulation in which the difference between the time when the virtualrobot control device performs the predetermined first operation and thetime when the robot control device performs the second operationcorresponding to the first operation is shorter than 1 millisecond.Consequently, the robot control device can suppress a shift betweentiming when the robot control device performs the second operation andtiming when the virtual robot control device performs the firstoperation.

The robot is controlled on the basis of the simulation result of thesimulation device that performs the simulation in which the differencebetween the time when the virtual robot control device performs thepredetermined first operation and the time when the robot control deviceperforms the second operation corresponding to the first operation isshorter than 1 millisecond. Consequently, the robot can suppress a shiftbetween timing when the robot is caused to perform predeterminedoperation by the robot control device and timing when a virtual robot iscaused to perform the operation by the virtual robot control device.

The simulation device performs the simulation in which the differencebetween the time when the virtual robot control device performs thepredetermined operation and the time when a real robot control devicecorresponding to the virtual robot control device performs thepredetermined operation is shorter than 1 millisecond. Consequently, thesimulation device can suppress a shift between timing when the virtualrobot control device performs the first operation and timing when therobot control device performs the second operation.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described with reference to the accompanyingdrawings, wherein like numbers reference like elements.

FIG. 1 is a diagram showing an example of the configuration of a robotsystem according to a first embodiment.

FIG. 2 a diagram showing an example of a hardware configuration of asimulation device and a robot control device.

FIG. 3 is a diagram showing an example of functional configurations ofthe simulation device and the robot control device.

FIG. 4 is a flowchart for explaining an example of a flow of processingin which the simulation device clocks an elapsed time.

FIG. 5 is a flowchart for explaining an example of a flow of processingin which the simulation device performs a simulation.

FIG. 6 is a flowchart for explaining an example of a flow of processingin which the robot control device acquires a simulation result of thesimulation device.

FIG. 7 is a perspective view of a robot according to a second embodimentviewed from the front side.

FIG. 8 is a schematic view of the robot shown in FIG. 7.

FIG. 9 is a block diagram of main parts of the robot and a robot controldevice.

FIG. 10 is a block diagram showing a simulation device.

FIG. 11 is a diagram for explaining a simulation of the simulationdevice shown in FIG. 10.

FIG. 12 is a diagram for explaining the simulation of the simulationdevice shown in FIG. 10.

FIG. 13 is a flowchart for explaining control operation by the robotcontrol device shown in FIG. 9.

FIG. 14 is a diagram for explaining a simulation of a simulation deviceaccording to a third embodiment.

FIG. 15 is a diagram for explaining a simulation of a simulation deviceaccording to a fourth embodiment.

FIG. 16 is a diagram for explaining a simulation of a simulation deviceaccording to a fifth embodiment.

FIG. 17 is a diagram for explaining the simulation of the simulationdevice according to the fifth embodiment.

FIG. 18 is a diagram for explaining a simulation of a simulation deviceaccording to a sixth embodiment.

FIG. 19 is a diagram for explaining the simulation of the simulationdevice according to the sixth embodiment.

FIG. 20 is a diagram for explaining the simulation of the simulationdevice according to the sixth embodiment.

DESCRIPTION OF EXEMPLARY EMBODIMENTS First Embodiment

A first embodiment of the invention is explained below with reference tothe drawings.

Configuration of a Robot System

First, the configuration of a robot system 1 is explained.

FIG. 1 is a diagram showing an example of the configuration of the robotsystem 1 according to this embodiment. The robot system 1 includes arobot 20, a peripheral device 25, a robot control device 30, and asimulation device 40.

The robot 20 is a single-arm robot including an arm A and a supportingstand B that supports the arm A. The single-arm robot is a robotincluding one arm like the arm A in this example. Note that the robot 20may be a plural-arm robot instead of the single-arm robot. Theplural-arm robot is a robot including two or more arms (e.g., two ormore arms A). Note that, among plural-arm robots, a robot including twoarms is referred to as double-arm robot as well. That is, the robot 20may be a double-arm robot including two arms or may be a plural-armrobot including three or more arms (e.g., three or more arms A). Therobot 20 may be another robot such as a SCARA robot or a Cartesiancoordinate robot. The Cartesian coordinate robot is, for example, agantry robot.

The arm A includes an end effector E and a manipulator M.

In this example, the end effector E is an end effector including fingersections capable of gripping an object. Note that the end effector E maybe an end effector capable of lifting an object with the suction of theair, a magnetic force, a jig, or the like or another end effectorinstead of the end effector including the finger sections.

The end effector E is communicatively connected to the robot controldevice 30 by a cable. Consequently, the end effector E performs a motionbased on a control signal acquired from the robot control device 30.Note that wired communication via the cable is performed according to astandard such as the Ethernet (registered trademark) or the USB(Universal Serial Bus). The end effector E may be connected to the robotcontrol device 30 by wireless communication performed according to acommunication standard such as the Wi-Fi (registered trademark).

The manipulator M includes six joints. The six joints respectivelyinclude not-shown actuators. That is, the arm A including themanipulator M is an arm of a six-axis vertical multi-joint type. The armA performs a motion of a six-axis degree of freedom according toassociated operation by the supporting stand B, the end effector E, themanipulator M, and the actuators of the respective six joints includedin the manipulator M. Note that the arm A may move at a degree offreedom of five or less axes or may move at a degree of freedom of sevenor more axes.

The six actuators (included in the joints) included in the manipulator Mare respectively communicatively connected to the robot control device30 by cables. Consequently, the actuators operate the manipulator M onthe basis of a control signal acquired from the robot control device 30.Note that wired communication via the cables is performed according to astandard such as the Ethernet (registered trademark) or the USB. A partor all of the six actuators included in the manipulator M may beconnected to the robot control device 30 by wireless communicationperformed according to a communication standard such as the Wi-Fi(registered trademark).

The peripheral device 25 and the simulation device 40 arecommunicatively connected to each other by a cable. The simulationdevice 40 and the robot control device 30 are communicatively connectedto each other by a cable. The robot control device 30 and the peripheraldevice 25 are communicatively connected to each other by a cable. Wiredcommunication via the cables is performed according to a standard suchas the Ethernet (registered trademark) or the USB. The peripheral device25 may be connected to the simulation device 40 by wirelesscommunication performed according to a communication standard such asthe Wi-Fi (registered trademark). The simulation device 40 may beconnected to the robot control device 30 by wireless communicationperformed according to a communication standard such as the Wi-Fi(registered trademark). The robot control device 30 may be connected tothe peripheral device 25 by wireless communication performed accordingto a communication standard such as the Wi-Fi (registered trademark).

The peripheral device 25 is a device that performs transmission andreception of information to and from the robot control device 30. Forexample, the peripheral device 25 is sensor such as a temperature sensorthat detects the temperature in a position where the peripheral device25 is set or a force sensor that detects an external force applied tothe end effector E. Note that the peripheral device 25 may be anotherdevice if the device is a device that performs transmission andreception of information to and from the robot control device 30 such asan operation panel or a teaching pendant. In the following explanation,as an example, the peripheral device 25 is the temperature sensor.

The peripheral device 25 acquires, from the robot control device 30,acquisition request information indicating a request for acquisition oftemperature information indicating temperature detected by theperipheral device 25. The peripheral device 25 outputs the temperatureinformation to the robot control device 30 on the basis of the acquiredacquisition request information. The peripheral device 25 acquires theacquisition request information from a virtual robot control device VCvirtually generated in a storage region of the simulation device 40. Theperipheral device 25 outputs the temperature information to the virtualrobot control device VC, that is, the simulation device 40 on the basisof the acquired acquisition request information.

The simulation device 40 is an information processing device such as awork station, a desktop PC (Personal Computer), a notebook PC, a tablePC, a multifunction cellular phone terminal (a smartphone), anelectronic book reader with a communication function, or a PDA (PersonalDigital Assistant).

The simulation device 40 performs a simulation of the operation of thevirtual robot control device VC on a virtual space VS on the basis ofoperation received from a user. The virtual space VS means a virtualspace generated in the storage region of the simulation device 40 by thesimulation device 40. In the simulation, the simulation device 40 causesthe virtual robot control device VC to control (operate) a virtual robotVR on the virtual space VS. The virtual robot VR is a virtual robotcorresponding to the robot 20. The virtual robot control device VCoperating on the virtual space VS generates, on the basis of anoperation program input by the user in advance, a control signal foroperating the virtual robot VR. The virtual robot control device VCoutputs the generated control signal to the virtual robot VR and causesthe virtual robot VR to perform predetermined work.

When causing the virtual robot VR to perform the predetermined work, thevirtual robot control device VC performs predetermined first operation.In this example, the first operation is operation for outputtingacquisition request information to the peripheral device 25 on the basisof the operation program and acquiring temperature information, which isa response of the peripheral device 25 to the output acquisition requestinformation. Note that the first operation may be another kind ofoperation instead of this operation. The virtual robot control device VCcontrols the virtual robot VR on the basis of the temperatureinformation acquired by the first operation. For example, whentemperature indicated by the temperature information acquired by thefirst operation is equal to or higher than a predetermined threshold,the virtual robot control device VC stops the operation of the virtualrobot VR. Note that the virtual robot control device VC may cause thevirtual robot VR to perform another kind of operation based on thetemperature indicated by the temperature information. The acquisitionrequest information is an example of information that the virtual robotcontrol device VC outputs to the peripheral device 25 according to thefirst operation. The temperature information is an example ofinformation that the virtual robot control device VC acquires from theperipheral device 25 according to the first operation.

In this example, the robot control device 30 is a robot controller. Therobot control device 30 is a real robot control device corresponding tothe virtual robot control device VC. The robot control device 30controls the robot 20 on the basis of a simulation result of thesimulation device 40. Specifically, the robot control device 30generates, on the basis of the operation program acquired from thesimulation device 40 as the simulation result, a control signal foroperating the robot 20. The robot control device 30 outputs thegenerated control signal to the robot 20 and causes the robot 20 toperform predetermined work.

When causing the robot 20 to perform the predetermined work, the robotcontrol device 30 performs second operation corresponding to the firstoperation. In this example, the second operation is operation foroutputting acquisition request information to the peripheral device 25on the basis of the operation program and acquiring temperatureinformation, which is a response of the peripheral device 25 to theoutput acquisition request information. Note that the second operationmay be another kind of operation instead of this operation if theoperation is operation corresponding to the first operation. The robotcontrol device 30 controls the robot 20 on the basis of the temperatureinformation acquired by the second operation. For example, whentemperature indicated by the temperature information acquired by thesecond operation is equal to or higher than a predetermined threshold,the robot control device 30 stops the operation of the robot 20. Notethat the robot control device 30 may cause the robot 20 to performanother kind of operation based on the temperature indicated by thetemperature information. The acquisition request information is anexample of information that the robot control device 30 outputs to theperipheral device 25 according to the second operation. The temperatureinformation is an example of information that the robot control device30 acquires from the peripheral device 25 according to the secondoperation.

Overview of Processing Performed by the Simulation Device

An overview of processing performed by the simulation device 40 isexplained below.

The simulation device 40 is not a device exclusive for simulationinstalled with a real time OS (Operating System) and is an informationprocessing device installed with an OS having a general-purposemultitask function. Therefore, even if the simulation device 40 attemptsto execute predetermined processing through an interrupt every time apredetermined time elapses, in some case, other processing having higherpriority than the predetermined processing is executed earlier and thepredetermined processing is executed after time longer than thepredetermined time elapses.

On the other hand, the robot control device 30 is installed with adedicated OS and executes predetermined processing every time apredetermined time elapses. When the simulation device 40 executes thepredetermined processing after the time longer than the predeterminedtime elapses, a shift occurs between time when the virtual robot controldevice VC performs first operation in a simulation by the simulationdevice 40 and time when the robot control device 30 performs secondoperation corresponding to the first operation. As a result, thesimulation device 40 sometimes cannot cause the virtual robot controldevice VC to perform operation same as the operation of the robotcontrol device 30 through the simulation.

Therefore, the simulation device 40 acquires a clock number counted by acounter included in a CPU 41 from the counter. The CPU 41 not shown inFIG. 1 is explained below. The clock number means the number of pulsesof a clock signal for operating the CPU 41. The simulation device 40clocks an elapsed time on the basis of a quotient and a remainderobtained when a number based on the acquired clock number is divided bya predetermined clock number associated with the predetermined time.

Specifically, the simulation device 40 clocks an elapsed time on thebasis of a quotient and a remainder obtained when a difference between aclock number acquired at certain timing (an example of the clock numberacquired in the last processing) and a clock number acquired in the nexttiming of the timing (an example of the clock number acquired in thepresent processing) is divided by the predetermined clock number. Thesimulation device 40 executes, according to the clocked elapsed time,the predetermined processing every time the predetermined time elapses.Consequently, the simulation device 40 can execute the predeterminedprocessing every time the predetermined time elapses. In the followingexplanation, as an example, the predetermined time is 1 millisecond.Note that the predetermined time may be time shorter than 1 millisecondsuch as 0.5 millisecond or 0.1 millisecond instead of 1 millisecond.

According to such a clocking method, the simulation device 40 performs asimulation in which a difference between time when the virtual robotcontrol device VC performs the first operation and time when the robotcontrol device 30, which is a real robot control device corresponding tothe virtual robot control device VC, performs the second operation isshorter than 1 millisecond. As a result, the simulation device 40 cansuppress a shift between the time when the virtual robot control deviceVC performs the first operation and the time when the robot controldevice 30 performs the second operation.

In the following explanation, processing in which the simulation device40 clocks an elapsed time is explained in detail.

Hardware Configuration of the Simulation Device and the Robot ControlDevice

A hardware configuration of the simulation device 40 and the robotcontrol device 30 is explained with reference to FIG. 2.

FIG. 2 is a diagram showing an example of the hardware configuration ofthe simulation device 40 and the robot control device 30. FIG. 2 is adiagram showing a hardware configuration of the simulation device 40(functional sections added with reference numerals in fortieth in FIG.2) and a hardware configuration of the robot control device 30(functional sections added with reference numerals in thirties in FIG.2) together for convenience.

The simulation device 40 includes, for example, the CPU (CentralProcessing Unit) 41, a storing section 42, an input receiving section43, a communication section 44, and a display section 45. The simulationdevice 40 performs communication with each of the peripheral device 25and the robot control device 30 via the communication section 44. Thesecomponents are communicatively connected to one another via a bus Bus.

The CPU 41 executes various computer programs stored in the storingsection 42. The CPU 41 includes the not-shown counter explained above.

The storing section 42 includes, for example, a HDD (Hard Disk Drive) oran SSD (Solid State Drive), an EEPROM (Electrically ErasableProgrammable Read-Only Memory), a ROM (Read-Only Memory), or a RAM(Random Access Memory). Note that the storing section 42 may be, insteadof a storing section incorporated in the simulation device 40, anexternal storage device connected by, for example, a digitalinput/output port such as the USB. The storing section 42 stores variouskinds of information and images to be processed by the simulation device40, various computer programs including an operation program, and thelike.

The input receiving section 43 is, for example, a touch panel configuredintegrally with the display section 45. Note that the input receivingsection 43 may be a keyboard, a mouse, a touch pad, or another inputdevice.

The communication section 44 includes, for example, a digitalinput/output port such as the USB or an Ethernet (registered trademark)port.

The display section 45 is, for example, a liquid crystal display panelor an organic EL (Electro Luminescence) display panel.

The robot control device 30 includes, for example, a CPU 31, a storingsection 32, an input receiving section 33, a communication section 34,and a display section 35. The robot control device 30 performscommunication with each of the robot 20 and the peripheral device 25 viathe communication section 34. These components are communicativelyconnected to one another via a bus Bus.

The CPU 31 executes various computer programs stored in the storingsection 32.

The storing section 32 includes, for example, a HDD or an SSD, anEEPROM, a ROM, or a RAM. Note that the storing section 32 may be,instead of a storing section incorporated in the robot control device30, an external storage device connected by, for example, a digitalinput/output port such as the USB. The storing section 32 stores variouskinds of information and images to be processed by the robot controldevice 30, various computer programs including an operation program, andthe like.

The input receiving section 33 is, for example, a touch panel configuredintegrally with the display section 35. Note that the input receivingsection 33 may be a keyboard, a mouse, a touch pad, or another inputdevice.

The communication section 34 includes, for example, a digitalinput/output port such as the USB or an Ethernet (registered trademark)port.

The display section 35 is, for example, a liquid crystal display panelor an organic EL display panel.

Functional Configurations of the Simulation Device and the Robot ControlDevice

Functional configurations of the simulation device 40 and the robotcontrol device 30 are explained below with reference to FIG. 3.

FIG. 3 is a diagram showing an example of the functional configurationsof the simulation device 40 and the robot control device 30.

The simulation device 40 includes the storing section 42, the inputreceiving section 43, the display section 45, and a control section 46.

The control section 46 controls the entire simulation device 40. Thecontrol section 46 includes a display control section 461 a simulationsection 463, a clock-number acquiring section 465, and a clockingsection 467. These functional sections included in the control section46 are realized by, for example, the CPU 41 executing the variouscomputer programs stored in the storing section 42. Apart or all of thefunctional sections may be hardware functional sections such as an LSI(Large Scale Integration) and an ASIC (Application Specific IntegratedCircuit).

The display control section 461 generates various screens on the basisof operation received from the user. The display control section 461causes the display section 45 to display the generated various screens.

The simulation section 463 generates the virtual space VS in a storageregion of the storing section 42. The simulation section 463 generatesthe virtual robot VR and the virtual robot control device VC on thegenerated virtual space VS. The simulation device 40 operates thevirtual robot control device VC and operates the virtual robot VR on thevirtual space VS on the basis of operation received from the user. Thatis, the simulation section 463 performs a simulation of the operation ofthe virtual robot control device VC on the virtual space VS. When thesimulation section 463 performs the simulation of the operation of thevirtual robot control device VC, the simulation section 463 performs thesimulation on the basis of an elapsed time clocked by the clockingsection 467.

The clock-number acquiring section 465 acquires a clock number from thecounter included in the CPU 41.

The clocking section 467 clocks an elapsed time on the basis of theclock number acquired by the clock-number acquiring section 465.

The robot control device 30 includes the storing section 32, the inputreceiving section 33, the display section 35, and a control section 36.

The control section 36 controls the entire robot control device 30. Thecontrol section 36 includes a communication control section 361, astorage control section 363, and a robot control section 365. Thesefunctional sections included in the control section 36 are realized by,for example, the CPU 31 executing the various computer programs storedin the storing section 32. A part or all of the functional sections maybe hardware functional sections such as an LSI and an ASIC.

The communication control section 361 outputs information to theperipheral device 25. The communication control section 361 acquiresinformation from the peripheral device 25. In this example, thecommunication control section 361 outputs acquisition requestinformation to the peripheral device 25. The communication controlsection 361 acquires temperature information, which is a response of theperipheral device 25 to the output acquisition request information.

The storage control section 363 acquires information indicating anoperation program output from the simulation section 463. The storagecontrol section 363 causes the storing section 32 to store the operationprogram indicated by the acquired information.

The robot control section 365 controls (operates), according tooperation received from the user, the robot 20 on the basis of theoperation program stored in the storing section 32.

Processing in which the Simulation Device Clocks an Elapsed Time

Processing in which the simulation device 40 clocks an elapsed time isexplained with reference to FIG. 4.

FIG. 4 is a flowchart for explaining an example of a flow of theprocessing in which the simulation device 40 clocks an elapsed time. Inthe flowchart of FIG. 4, before the processing of the flowchart of FIG.4 is started, the simulation device 40 already generates the virtualspace VS in the storage region of the storing section 42 and generatesthe virtual robot VR and the virtual robot control device VC on thegenerated virtual space VS. In the following explanation, the simulationdevice 40 generates, in advance, three variables, that is, a firstvariable, a second variable, and a third variable, which are variablesin which 0 is stored as initial values and numbers can be stored.

After receiving, from the user, operation for starting the operation ofthe virtual robot control device VC on the virtual space VS, thesimulation section 463 acquires time clocked by a not-shown OS. Thesimulation section 463, the clock-number acquiring section 465, and theclocking section 467 repeatedly perform processing in steps S120 to S220every time the simulation section 463 determines on the basis of thetime acquired by the simulation section 463 that a predetermined timehas elapsed (step S110).

The time clocked by the not-shown OS sometimes delays because ofinterrupt processing. Therefore, the processing in steps S120 to S220 isnot always performed every time a real predetermined time elapses and isexecuted by the simulation section 463, the clock-number acquiringsection 465, and the clocking section 467 every time the simulationsection 463 determines on the basis of the time that the predeterminedtime has elapsed. Note that, in this example, the predetermined time is1 millisecond as explained above.

After the simulation section 463 determines in step S110 that thepredetermined time has elapsed, the clock-number acquiring section 465acquires a clock number from the counter included in the CPU 41 (stepS120). Subsequently, the clock-number acquiring section 465 determineswhether the processing in step S120 has been executed twice or moreafter the operation for starting the operation of the virtual robotcontrol device VC is received (step S130).

When determining that the processing in step S120 has not been executedtwice or more after the operation for starting the operation of thevirtual robot control device VC is received (NO in step S130), theclock-number acquiring section 465 stores the clock number acquired instep S120 in the second variable (step S220). The simulation section 463shifts to step S110 and stays on standby until the predetermined timeelapses again. Note that, in this example, the storing the clock numberin the second variable means changing the number stored in the secondvariable to the clock number.

On the other hand, when determining that the processing in step S120 hasbeen executed twice or more after the operation for starting theoperation of the virtual robot control device VC is received (YES instep S130), the clock-number acquiring section 465 stores the clocknumber acquired in step S120 in the first variable (step S140). Notethat, in this example, the storing the clock number in the firstvariable means changing the number stored in the first variable to theclock number.

After the processing in step S140 is executed, the clocking section 467calculates a difference between the number stored in the first variableand the number stored in the second variable (step S150). Subsequently,the clocking section 467 stores the difference calculated in step S150in the third variable (step S160). Note that, in this example, thestoring the difference in the third variable means changing the numberstored in the third variable to the difference.

Subsequently, the clocking section 467 calculates a quotient and aremainder obtained when the number stored in the third variable isdivided by a predetermined clock number associated with thepredetermined time (step S170). In this example, the predetermined clocknumber is a value determined according to the predetermined time and aclock frequency of a not-shown CPU 41. For example, the predeterminedclock number is 10⁶ when the predetermined time is 1 millisecond and theclock frequency is 1 gigahertz.

Subsequently, the clocking section 467 adds the remainder calculated instep S170 to the third variable (step S180). Note that, in this example,the adding the remainder to the third variable means storing anew, inthe third variable, a number obtained by adding the remainder to thenumber stored in the third variable.

Subsequently, the clocking section 467 determines whether the quotientcalculated in step S170 is equal to or larger than 1 (step S190). Whenthe clocking section 467 determines that the quotient calculated in stepS170 is not equal to or larger than 1 (NO in step S190), theclock-number acquiring section 465 shifts to step S220 and stores theclock number acquired in step S120 in the second variable. On the otherhand, when the clocking section 467 determines that the quotientcalculated in step S170 is equal to or larger than 1 (YES in step S190),the simulation section 463 causes the virtual robot control device VC todetermine that the predetermined time has elapsed and causes the virtualrobot control device VC to execute processing performed when thepredetermined time has elapsed (step S200). For example, when thevirtual robot control device VC performs the first operation every timethe predetermined time elapses, the virtual robot control device VCperforms the first operation every time the processing in step S200 isexecuted and acquires temperature information from the peripheral device25.

Subsequently, the clocking section 467 subtracts 1 from the quotientcalculated in step S170 (step S210). The clocking section 467 shifts tostep S190 and determines whether the quotient, from which 1 issubtracted in step S210, is equal to or larger than 1.

As explained above, the simulation device 40 repeatedly performs theprocessing in steps S120 to S220 every time the simulation section 463determines on the basis of the time acquired from the not-shown OS thatthe predetermined time has elapsed. Consequently, for example, even whenthe simulation section 463 determines on the basis of the time acquiredfrom the OS that the predetermined time has elapsed after time longerthan the predetermined time has elapsed. The simulation device 40corrects, with the remainder stored in the third variable when theprocessing in steps S120 to S220 is executed next, an interval until thesimulation section 463 causes the virtual robot control device VC todetermine that the predetermined time has elapsed. As a result, thesimulation device 40 reduces the difference between the time when thevirtual robot control device VC performs the first operation and thetime when the robot control device 30 performs the second operation tobe shorter than 1 millisecond. Note that, for example, when thepredetermined time is 0.5 millisecond, the simulation device 40 reducesthe difference to be shorter than 0.5 millisecond. For example, when thepredetermined time is 0.1 millisecond, the simulation device 40 reducesthe difference to be shorter than 0.1 millisecond. That is, thesimulation device 40 can suppress the shift between the time when thevirtual robot control device VC performs the first operation and thetime when the robot control device 30 performs the second operation.

Processing in which the Simulation Device Performs a Simulation

Processing in which the simulation device 40 performs a simulation isexplained below with reference to FIG. 5. FIG. 5 is a flowchart forexplaining an example of the processing in which the simulation device40 performs a simulation.

After receiving, from the user, operation for starting the operation ofthe virtual robot control device VC on the virtual space VS, thesimulation section 463 determines whether the processing in step S200shown in FIG. 4 is executed. That is, the simulation section 463 putsthe virtual robot control device VC on standby until the predeterminedtime elapses (step S250). When the simulation section 463 determinesthat the predetermined time has elapsed (YES in step S250), the virtualrobot control device VC operates, on the basis of the operation programstored in the storing section 42 in advance, the virtual robot controldevice VC for time equivalent to the elapsed time (step S260). Forexample, the simulation section 463 causes, on the basis of theoperation program, the virtual robot control device VC to perform thefirst operation.

Subsequently, the simulation section 463 causes the virtual robotcontrol device VC to determine whether the operation program has ended(step S270). For example, when the virtual robot control device VC hasexecuted all commands described in the operation program, the virtualrobot control device VC determines that the operation program has ended.When the virtual robot control device VC determines that the operationprogram has not ended (NO in step S270), the simulation section 463shifts to step S250 and determines whether the processing in step S200shown in FIG. 4 is executed again. On the other hand, when the virtualrobot control device VC determines that the operation program has ended(YES in step S270), the simulation section 463 ends the processing.

In this way, the simulation device 40 can operate the virtual robotcontrol device VC on the virtual space VS on the basis of thepredetermined time clocked by the processing of the flowchart of FIG. 4and perform the simulation of the operation of the virtual robot controldevice VC. Consequently, the simulation device 40 can suppress the shiftbetween the time when the virtual robot control device VC performs thefirst operation and the time when the robot control device 30 performsthe second operation.

Processing in which the Robot Control Device Acquires a SimulationResult of the Simulation Device

Processing in which the robot control device 30 acquires a simulationresult of the simulation device 40 is explained with reference to FIG.6.

FIG. 6 is a flowchart for explaining an example of a flow of theprocessing in which the robot control device 30 acquires a simulationresult of the simulation device 40. Note that, in the flowchart of FIG.6, a simulation of the simulation device 40 has already ended.

After the simulation device 40 outputs a simulation result of thesimulation to the robot control device 30 on the basis of operationreceived from the user, the communication control section 361 acquiresthe simulation result from the simulation device 40 (step S310). In thisexample, the simulation result is information indicating an operationprogram with which the simulation device 40 operates the virtual robotcontrol device VC in the simulation. Note that the simulation result maybe, instead of this information, another kind of information such assetting values (various thresholds, force control parameters, and thelike) set in the virtual robot control device VC in the simulation.Subsequently, the storage control section 363 causes the storing section32 to store the simulation result acquired by the communication controlsection 361 in step S310 (step S320).

In this way, the robot control device 30 stores the simulation result ofthe simulation device 40. Consequently, the robot control device 30 cancontrol the robot 20 on the basis of the simulation result of thesimulation device 40. For example, the robot control section 365included in the robot control device 30 reads out the operation program,which is the simulation result stored in the storing section 32, on thebasis of operation received from the user. The robot control section 365controls the robot 20 on the basis of the read-out operation program. Asa result, the robot control device 30 can suppress the shift between thetime when the virtual robot control device VC performs the firstoperation and the time when the robot control device 30 performs thesecond operation.

As explained above, the robot control device 30 controls the robot (inthis example, the robot 20) on the basis of the simulation result of thesimulation device that performs the simulation in which the differencebetween the time when the virtual robot control device (in this example,the virtual robot control device VC) performs the predetermined firstoperation and the time when the robot control device 30 performs thesecond operation corresponding to the first operation is shorter than 1millisecond. Consequently, the robot control device 30 can suppress ashift between timing when the virtual robot control device performs thefirst operation and timing when the robot control device performs thesecond operation.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that performs the simulationin which the difference between the time when the virtual robot controldevice performs the acquisition of the information from the peripheraldevice (in this example, the peripheral device 25) connected to thesimulation device as the first operation and the time when the robotcontrol device 30 performs the acquisition of the information from theperipheral device connected to the robot control device as the secondoperation corresponding to the first operation is shorter than 1millisecond. Consequently, the robot control device 30 can suppress ashift between the time when the robot control device 30 performs theacquisition of the information from the peripheral device connected tothe robot control device and the time when the virtual robot controldevice performs the acquisition of the information from the peripheraldevice connected to the simulation device.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that performs the simulationin which the virtual robot control device controls the virtual robot onthe basis of the information from the peripheral device acquired by thefirst operation. Consequently, the robot control device 30 can suppressa shift between the time when the robot control device 30 controls therobot on the basis of the information from the peripheral deviceacquired by the second operation and the time when the virtual robotcontrol device controls the virtual robot on the basis of theinformation from the peripheral device acquired by the first operation.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that performs the simulationin which the difference between the time when the virtual robot controldevice performs the output of the information to the peripheral deviceconnected to the simulation device as the first operation and the timewhen the robot control device performs the output of the information tothe peripheral device connected to the robot control device as thesecond operation corresponding to the first operation is shorter than 1millisecond. Consequently, the robot control device 30 can suppress ashift between the time when the robot control device 30 performs theoutput of the information to the peripheral device connected to therobot control device 30 and the time when the virtual robot controldevice performs the output of the information to the peripheral deviceconnected to the simulation device.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that clocks an elapsed timeon the basis of a quotient and a remainder obtained when the numberbased on the acquired clock number is divided by the predetermined clocknumber associated with the predetermined time. Consequently, the robotcontrol device 30 can suppress as shift between an elapsed time clockedby the robot control device 30 and an elapsed time clocked by thesimulation device.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that clocks an elapsed timeon the basis of a quotient and a remainder obtained when the differencebetween the clock number acquired in the last processing and the clocknumber acquired in the present processing is divided by thepredetermined clock number associated with the predetermined time.Consequently, the robot control device 30 can suppress, on the basis ofthe difference between the clock number acquired in the last processingand the clock number acquired in the present processing, a shift betweenan elapsed time clocked by the robot control device 30 and an elapsedtime clocked by the simulation device.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that clocks an elapsed timeon the basis of a quotient and a remainder obtained when the differencebetween the clock number acquired in the last processing and the clocknumber acquired the present processing is divided by the predeterminedclock number associated with the time equal to or shorter than 1millisecond. Consequently, the robot control device 30 can suppress ashift between an elapsed time clocked by the robot control device 30 andan elapsed time clocked by the simulation device to be shorter than 1millisecond.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that clocks an elapsed timeon the basis of a quotient and a remainder obtained when the differencebetween the clock number acquired in the last processing and the clocknumber acquired in the present processing is divided by thepredetermined clock number associated with time equal to or shorter than0.5 millisecond. Consequently, the robot control device 30 can suppressa shift between an elapsed time clocked by the robot control device 30and an elapsed time clocked by the simulation device to be shorter than0.5 millisecond.

The robot control device 30 controls the robot on the basis of thesimulation result of the simulation device that clocks an elapsed timeon the basis of a quotient and a remainder obtained when the differencebetween the clock number acquired in the last processing and the clocknumber acquired in the present processing is divided by thepredetermined clock number associated with time equal to or shorter than0.1 millisecond. Consequently, the robot control device 30 can moresurely suppress a shift between an elapsed time clocked by the robotcontrol device 30 and an elapsed time clocked by the simulation deviceto be shorter than 0.1 millisecond.

The embodiment of the invention is explained in detail above withreference to the drawings. However, a specific configuration is notlimited to this embodiment and may be, for example, changed,substituted, and deleted without departing from the spirit of theinvention.

It is also possible to record, in a computer-readable recording medium,a computer program for realizing functions of any components in thedevices (e.g., the simulation device 40 and the robot control device 30)explained above, cause a computer system to read the computer program,and execute the computer program. Note that the “computer system”includes an OS (an operating system) and hardware such as peripheraldevices. The “computer-readable recording medium” refers to a portablemedium such as a flexible disk, a magneto-optical disk, a ROM, or a CD(Compact Disk)-ROM or a storage device such as a hard disk incorporatedin the computer system. Further, the “computer-readable recordingmedium” includes a recording medium that stores a computer program for afixed time such as a volatile memory (a RAM) inside a computer systemfunctioning as a server or a client when a computer program istransmitted via a network such as the Internet or a communication linesuch as a telephone line.

The computer program may be transmitted from a computer system, whichstores the computer program in a storage device or the like, to anothercomputer system via a transmission medium or by a transmission wave inthe transmission medium. The “transmission medium”, which transmits thecomputer program, refers to a medium having a function of transmittinginformation like a network (a communication network) such as theInternet or a communication line (a communication wire) such as atelephone line.

The computer program may be a computer program for realizing a part ofthe functions explained above. Further, the computer program may be acomputer program that can realize the functions in a combination with acomputer program already recorded in the computer system, a so-calleddifferential file (a differential program).

Second Embodiment

A second embodiment of the invention is explained below with referenceto the drawings.

FIG. 7 is a perspective view of a robot according to this embodimentviewed from the front side. FIG. 8 is a schematic diagram of the robotshown in FIG. 7. FIG. 9 is a block diagram of main parts of the robotand a robot control device. FIG. 10 is a block showing a simulationdevice. FIG. 11 is a diagram for explaining a simulation of thesimulation device shown in FIG. 10. FIG. 12 is a diagram for explainingthe simulation of the simulation device shown in FIG. 10. FIG. 13 is aflowchart for explaining control operation by the robot control deviceshown in FIG. 9.

Note that, in the following explanation, for convenience of explanation,the upper side in FIGS. 7, 8, 11, and 12 is referred to as “upper” or“upward” and the lower side is referred to as “lower” or “downward”. Thebase side in FIGS. 7, 8, 11, and 12 is referred to as “proximal end” or“upstream” and the opposite side of the base side is referred to as“distal end” or “downstream. The up-down direction in FIGS. 7, 8, 11,and 12 is the vertical direction.

A contour of a display screen of a display device is shown in only FIG.11. The display of the contour is omitted in the other figures.

A simulation device 5 shown in FIG. 10 is a device that performs asimulation of the operation of a virtual robot 8A on a virtual space. Inthis embodiment, the virtual space is a three-dimensional virtual space.However, the virtual space is not limited to this. The robot controldevice 30 shown in FIG. 9 controls the robot 8 on the basis of asimulation result of the simulation of the simulation device 5.

Note that signs of sections of the virtual robot 8A are written with “A”added behind signs of the corresponding sections of a real robot 8.Names of the sections of the virtual robot 8A are written with “virtual”added in front of names of the corresponding sections of the real robot8. Explanation of the virtual robot 8A is substituted by explanation ofthe robot 8.

First, the robot 8 and the robot control device 30 are explained.

A robot system 100 shown in FIGS. 7 to 9 includes the robot 8 and therobot control device 30 that controls the robot 8. That is, the robot 8is controlled by the robot control device 30. A use of the robot system100 is not particularly limited. However, the robot system 100 can beused in, for example, a manufacturing process for manufacturing aprecision instrument such as a wristwatch.

A part or the entire robot control device 30 may be incorporated in therobot 8. The robot control device 30 may be separate from the robot 8.

The robot control device 30 can be configured by, for example, apersonal computer (PC) incorporating a CPU. The robot control device 30includes a first driving-source control section 201 that controlsactuation (driving) of a first driving source 401 explained below of therobot 8, a second driving-source control section 202 that controlsactuation of a second driving source 402 of the robot 8, a thirddriving-source control section 203 that controls actuation of a thirddriving source 403 of the robot 8, a fourth driving-source controlsection 204 that controls actuation of a fourth driving source 404 ofthe robot 8, a fifth driving-source control section 205 that controlsactuation of a fifth driving source 405 of the robot 8, a sixthdriving-source control section 206 that controls actuation of a sixthdriving source 406 of the robot 8, a control section 207, and a storingsection 208 that stores various kinds of information.

As shown in FIGS. 7 and 8, the robot 8 includes a base 11 and amanipulator 10 (a robot arm). The manipulator 10 includes a first arm12, a second arm 13, a third arm 14, a fourth arm 15, a fifth arm 17,and a sixth arm 18 and the first driving source 401, the second drivingsource 402, the third driving source 403, the fourth driving source 404,the fifth driving source 405, and the sixth driving source 406. A wrist16 is configured by the fifth arm 17 and the sixth arm 18. An endeffector (not shown in the figure) such as a hand can be detachablyattached to the distal end portion of the sixth arm 18, that is, adistal end face 163 of the wrist 16. The robot 8 can perform respectivekinds of work for, for example, while gripping a precision instrument, acomponent, or the like with the hand, conveying the precision instrumentor the component by controlling motions of the arms 12 to 15, the wrist16, and the like.

The robot 8 is a vertical multi-joint (six-axis) robot in which the base11, the first arm 12, the second arm 13, the third arm 14, the fourtharm 15, the fifth arm 17, and the sixth arm 18 are coupled in this orderfrom the proximal end side toward the distal end side. In the followingexplanation, the first arm 12, the second arm 13, the third arm 14, thefourth arm 15, the fifth arm 17, the sixth arm 18, and the wrist 16 arerespectively referred to as “arms” as well. The first driving source401, the second driving source 402, the third driving source 403, thefourth driving source 404, the fifth driving source 405, and the sixthdriving source 406 are respectively referred to as “driving sources” aswell. Note that the lengths of the arms 12 to 15, 17, and 18 arerespectively not particularly limited and can be set as appropriate.

The base 11 and the first arm 12 are coupled via a joint 171. The firstarm 12 is capable of turning around a first turning axis O1 parallel tothe vertical direction with respect to the base 11 with the firstturning axis O1 set as a turning center. The first turning axis O1coincides with the normal of the upper surface of a floor 101, which isa setting surface of the base 11. The first turning axis O1 is a turningaxis present on the most upstream side of the robot 8. The first arm 12turns according to driving of the first driving source 401 including amotor (a first motor) 401M and a reduction gear (not shown in thefigure). The motor 401M is controlled by the robot control device 30 viaa motor driver 301. Note that the reduction gear may be omitted.

The first arm 12 and the second arm 13 are coupled via a joint 172. Thesecond arm 13 is capable of turning with respect to the first arm 12with a second turning axis O2 parallel to the horizontal direction setas a turning center. The second turning axis O2 is orthogonal to thefirst turning axis O1. The second arm 13 turns according to driving ofthe second driving source 402 including a motor (a second motor) 402Mand a reduction gear (not shown in the figure). The motor 402M iscontrolled by the robot control device 30 via the motor driver 302. Notethat the reduction gear may be omitted. The second turning axis O2 maybe parallel to an axis orthogonal to the first turning axis O1.

The second arm 13 and the third arm 14 are coupled via a joint 173. Thethird arm 14 is capable of turning around a third turning axis O3parallel to the horizontal direction with respect to the second arm 13with the third turning axis O3 set as a turning center. The thirdturning axis O3 is parallel to the second turning axis O2. The third arm14 turns according to driving of the third driving source 403 includinga motor (a third motor) 403M and a reduction gear (not shown in thefigure). The motor 403M is controlled by the robot control device 30 viaa motor driver 303. Note that the reduction gear may be omitted.

The third arm 14 and the fourth arm 15 are coupled via a joint 174. Thefourth arm 15 is capable of turning around a fourth turning axis O4parallel to the center axis direction of the third arm 14 with respectto the third arm 14 with the fourth turning axis O4 set as a turningcenter. The fourth turning axis O4 is orthogonal to the third turningaxis O3. The fourth arm 15 turns according to driving of the fourthdriving source 404 including a motor (a fourth motor) 404M and areduction gear (not shown in the figure). The motor 404M is controlledby the robot control device 30 via the motor driver 304. Note that thereduction gear may be omitted. The fourth turning axis O4 may beparallel to an axis orthogonal to the third turning axis O3.

The fourth arm 15 and the fifth arm 17 of the wrist 16 are coupled via ajoint 175. The fifth arm 17 capable of turning around a fifth turningaxis O5 with respect to the fourth arm 15 with the fifth turning axis O5set as a turning center. The fifth turning axis O5 is orthogonal to thefourth turning axis O4. The fifth arm 17 turns according to driving ofthe fifth driving source 405 including a motor (a fifth motor) 405M anda reduction gear (not shown in the figure). The motor 405M is controlledby the robot control device 30 via a motor driver 305. Note that thereduction gear may be omitted. The fifth turning axis O5 may be parallelto an axis orthogonal to the fourth turning axis O4.

The fifth arm 17 and the sixth arm 18 of the wrist 16 are coupled via ajoint 176. The sixth arm 18 is capable of turning around a sixth turningaxis O6 with respect to the fifth arm 17 with the sixth turning axis O6set as a turning center. The sixth turning axis O6 is orthogonal to thefifth turning axis O5. The sixth arm 18 turns according to driving ofthe sixth driving source 406 including a motor (a sixth motor) 406M anda reduction gear (not shown in the figure). The motor 406M is controlledby the robot control device 30 via a motor driver 306. Note that thereduction gear may be omitted. The sixth turning axis O6 may be parallelto an axis orthogonal to the fifth turning axis O5.

Note that the wrist 16 includes, as the sixth arm 18, a wrist main body161 formed in a cylindrical shape and includes, as the fifth arm 17, asupporting ring 162 formed in a ring shape configured separately fromthe wrist main body 161 and provided in the proximal end portion of thewrist main body 161.

In the driving sources 401 to 406, a first angle sensor 411, a secondangle sensor 412, a third angle sensor 413, a fourth angle sensor 414, afifth angle sensor 415, and a sixth angle sensor 416 are respectivelyprovided in the motors or the reduction gears. The angle sensors are notparticularly limited. For example, an encoder such as a rotary encodercan be used. Rotation (turning) angles of rotation axes (turning axes)of the motors or the reduction gears of the driving sources 401 to 406are respectively detected by the angle sensors 411 to 416.

The motors of the driving sources 401 to 406 are respectively notparticularly limited. For example, it is desirable to use a servo motorsuch as an AC servo motor or a DC servo motor.

The robot 8 is electrically connected to the robot control device 30.That is, the driving sources 401 to 406 and the angle sensors 411 to 416are respectively electrically connected to the robot control device 30.

The robot control device 30 can actuate the arms 12 to 15 and the wrist16 independently from one another, that is, control the driving sources401 to 406 independently from one another via the motor drivers 301 to306. In this case, the robot control device 30 performs detection withthe angle sensors 411 to 416 and controls, on the basis of a result ofthe detection, driving of the driving sources 401 to 406, for example,angular velocities, rotation angles, and the like, respectively. Thecontrol program for the control is stored in the storing section 208 ofthe robot control device 30 in advance.

In this embodiment, the base 11 is a portion located in the bottom inthe vertical direction of the robot and fixed to (set on) the floor 101or the like of a setting space. A method of the fixing is notparticularly limited. For example, in this embodiment, a fixing methodby a plurality of bolts 111 is used.

For example, the motor 401M, the motor drivers 301 to 306, and the likeare housed in the base 11.

The arms 12 to 15 respectively include hollow arm main bodies 2, drivingmechanisms 3 housed in the arm main bodies 2 and including motors, and asealing member 4 that seals the arm main bodies 2. Note that, in thedrawings, the arm main body 2, the driving mechanism 3, and the sealingmember 4 included in the first arm 12 are respectively represented as “2a”, “3 a”, and “4 a” as well. The arm main body 2, the driving mechanism3, and the sealing member 4 included in the second arm 13 arerespectively represented as “2 b”, “3 b”, and “4 b” as well. The armmain body 2, the driving mechanism 3, and the sealing member 4 includedin the third arm 14 are respectively represented as “2 c”, “3 c”, and “4c” as well. The arm main body 2, the driving mechanism 3, and thesealing member 4 included in the fourth arm 15 are respectivelyrepresented as “2 d”, “3 d”, and “4 d” as well.

The simulation device 5 is explained. First, the virtual robot 8A isbriefly explained.

As shown in FIG. 11, the virtual robot 8A is the same as the robot 8 inthe first embodiment. The virtual robot 8A includes a virtual base 11Aand a virtual manipulator 10A (a virtual robot arm). The virtualmanipulator 10A includes a plurality of arms provided to be capable ofturning, in this embodiment, a virtual first arm 12A, a virtual secondarm 13A, a virtual third arm 14A, a virtual fourth arm 15A, a virtualfifth arm 17A, and a virtual sixth arm 18A. The virtual manipulator 10Aincludes a plurality of driving sources that drive the arms, in thisembodiment, sixth driving sources (not shown in the figure).

A virtual wrist 16A is configured by the virtual fifth arm 17A and thevirtual sixth arm 18A. A virtual end effector (not shown in the figure)such as a virtual hand can be detachably attached to the distal end ofthe virtual sixth arm 18A, that is, the distal end of the virtual wrist16A.

Note that, in the following explanation of the simulation device 5, thevirtual end effector is not attached to the virtual sixth arm 18A of thevirtual robot 8A.

As shown in FIG. 10, the simulation device 5 includes a control section51 that performs respective kinds of control, a storing section 52 thatstores respective kinds of information, and an operation section 53 thatperforms respective kinds of operation. The simulation device 5 has afunction of performing a simulation of the operation of the virtualrobot 8A on a virtual space.

A display device 6 capable of displaying images such as an imageindicating the simulation is connected to the simulation device 5. Asimulation system is configured by the simulation device 5 and thedisplay device 6. Note that the simulation device 5 may include adisplay device (a display section) instead of the display device 6. Thesimulation device 5 may include the display device separately from thedisplay device 6. The simulation performed by the simulation device 5 isexplained below.

As shown in FIGS. 11 and 12, in the simulation of the simulation device5, a first region 71 and a second region 72 located on the inside of thefirst region 71 can be set on the virtual space. Note that, in thevirtual space, a world coordinate system (a global coordinate system) isset. When the virtual robot 8A operates, as shown in FIG. 11, when aspecific portion of the virtual robot 8A intrudes into the first region71, the operating speed of the virtual robot 8A is limited. As shown inFIG. 12, when the specific portion of the virtual robot 8A intrudes intothe second region 72, the operation of the virtual robot 8A stops or thevirtual robot 8A retracts from the second region 72. This simulation isdisplayed on the display device 6.

The first region 71 and the second region 72 can be respectivelyoptionally set on the virtual space. The first region 71 and the secondregion 72 are set to surround a predetermined object 81 on the virtualspace, for example, the object 81 with which the virtual robot 8A isdesired to not be caused to collide with. Examples of the object 81include a peripheral device. Consequently, it is possible to suppressthe virtual robot 8A from colliding with the object 81 with which thevirtual robot 8A is desired to not be caused to collide with such as theperipheral device. Consequently, it is possible to easily perform thesimulation. It is possible to easily perform, for example, offlineteaching concerning the real robot 8.

The first region 71 and the second region 72 can be respectively set onthe basis of the world coordinate system. However, the first region 71and the second region can also be set on the basis of a coordinatesystem different from the world coordinate system. In this embodiment,the setting of the first region 71 and the second region 72 is performedon the basis of a coordinate system different from the world coordinatesystem. Examples of the coordinate system different from the worldcoordinate system include a local coordinate system (a user coordinatesystem). Consequently, it is possible to set coordinate axes in anydirections. Therefore, convenience is high.

The first region 71 and the second region 72 are respectivelythree-dimensional regions. The shapes of the first region 71 and thesecond region 72 are respectively not particularly limited and can beset as appropriate according to various conditions. In this embodiment,the shapes are rectangular parallelepipeds. Cubes are included in therectangular parallelepipeds. Note that the shapes of the first region 71and the second region 72 may be respectively shapes like margins inanother embodiment explained below, that is, shapes along the externalshapes of predetermined target objects.

The shape of the first region 71 and the shape of the second region 72may be identical, that is, similar or may be different.

The specific portion of the virtual robot 8A can be optionally set. Inthis embodiment, the specific portion is set in “any portion of thevirtual robot 8A”. Therefore, in this embodiment, when any portion ofthe virtual robot 8A intrudes into the first region 71, the operatingspeed of the virtual robot 8A is limited. When any portion of thevirtual robot 8A intrudes into the second region 72, the operation ofthe virtual robot 8A stops or the virtual robot 8A retracts from thesecond region 72.

Other specific examples of the specific portion include the distal endof the virtual manipulator 10A and a portion a predetermined distanceapart from the distal end of the virtual manipulator 10A in the proximalend direction.

In this case, in the virtual robot 8A in a state in which a virtual endeffector is not attached to the virtual sixth arm 18A, the distal end ofthe virtual sixth arm 18A is the distal end of the virtual manipulator10A.

In the virtual robot 8A in a state in which a virtual end effector isattached to the virtual sixth arm 18A, the distal end of the virtual endeffector may be set as the distal end of the virtual manipulator 10A orthe distal end of the virtual sixth arm 18A may be set as the distal endof the virtual manipulator 10A. That is, as the distal end of thevirtual manipulator 10A, one of the distal end of the virtual endeffector and the distal end of the virtual sixth arm 18A can beselected.

Specific examples of the limitation of the operating speed of thevirtual robot 8A include (1) and (2) described below.

(1) The operating speed is set lower than the operating speed before theintrusion into the first region 71. Specifically, the moving speed ofthe distal end portion of the virtual manipulator 10A is set lower thanthe moving speed before the intrusion into the first region 71.

(2) An upper limit value of the operating speed is set smaller than theupper limit value before the intrusion into the first region 71.Specifically, an upper limit value of the moving speed of the distal endportion of the virtual manipulator 10A is set smaller than the upperlimit value before the intrusion into the first region 71.

When the virtual robot 8A retracts from the second region 72, a positionto which the virtual robot 8A retracts is not particularly limited andcan be set as appropriate according to various conditions. However, thevirtual robot 8A desirably retracts to the outer side of the firstregion 71. Note that examples of the position to which the virtual robot8A retracts include an initial position.

The simulation result of the simulation device 5 is stored in thestoring section 208 of the robot control device 30.

Information concerning the simulation result is used for control of thereal robot 8 by the robot control device 30.

As another configuration example, information concerning the firstregion 71 and the second region 72 is stored in the storing section 208of the robot control device 30. That is, in the robot control device 30,the first region 71 and the second region 72 are defined.

Information concerning the defined first region 71 and the definedsecond region 72 is used for the control of the real robot 8 by therobot control device 30. That is, the robot control device 30 controlsthe robot 8 on the basis of the information concerning the first region71 and the second region 72.

The control of the robot 8 is the same as the simulation. To put itbriefly, when a specific portion of the robot 8 intrudes into the firstregion 71, the operating speed of the robot 8 is limited and, when thespecific portion of the robot 8 intrudes into the second region 72, theoperation of the robot 8 stops or the robot 8 retracts from the secondregion 72. Note that this control may be performed by connecting thesimulation device 5 to the robot control device 30.

An example of control operation of the robot 8 by the robot controldevice 30 is explained. Note that, in the following explanation of thecontrol operation, the specific portion of the robot 8 is set in “anyportion of the robot 8”. When any portion of the robot 8 intrudes intothe first region 71, the operating speed of the robot 8 is set lowerthan the operating speed before the intrusion. When any portion of therobot 8 intrudes into the second region 72, the operation of the robot 8stops.

As shown in FIG. 13, in the control of the robot 8, first, the robotcontrol device 30 determines whether the robot 8 has instructed into thefirst region 71 (step S401). When determining that any portion of therobot 8 intrudes into the first region 71, the robot control devicedetermines that the robot 8 “has intruded”. When determining that noportion of the robot 8 has intruded into the first region 71, the robotcontrol device 30 determines that the robot 8 “has not intruded”.

When determining in step S401 that the robot 8 has intruded into thefirst region 71, the robot control device 30 sets the operating speed ofthe robot 8 lower than the operating speed before the intrusion into thefirst region (step S402) and proceeds to step S403. By setting theoperating speed of the robot 8 to low speed, when the robot intrudesinto the second region 72, it is possible to quickly stop the operationof the robot 8.

When determining in step S401 that the robot 8 has not intruded into thefirst region 71, the robot control device 30 returns to step S401 andexecutes step S401 and subsequent steps again.

Subsequently, in step S403, the robot control device 30 determineswhether the entire robot 8 has moved out of the first region 71 (stepS403).

When determining in step S403 that the entire robot 8 has moved out ofthe first region 71, the robot control device 30 returns the operatingspeed of the robot 8 to original speed, that is, speed before theintrusion into the first region 71 (step S404). The robot control device30 returns to step S401 and executes step S401 and subsequent stepsagain.

When determining in step S403 that at least a part of the robot 8 hasnot moved out of the first region 71, that is, the robot 8 intrudes intothe first region 71, the robot control device 30 determines whether therobot 8 has intruded into the second region 72 (step S405). Whendetermining that any portion of the robot 8 has intruded into the secondregion 72, the robot control device 30 determines that the robot 8 “hasintruded”. When determining that no portion of the robot 8 has intrudedinto the second region 72, the robot control device 30 determines thatthe robot “has not intruded”.

When determining in step S405 that the robot 8 has intruded into thesecond region 72, the robot control device stops the operation of therobot 8 (step S406). Consequently, it is possible to suppress the robot8 from colliding with an object with which the robot 8 is desired not tobe caused to collide with such as a real peripheral device.

When determining in step S405 that the robot 8 has not intruded into thesecond region 72, the robot control device 30 returns to step S403 andexecutes step S403 and subsequent step S403 again.

As explained above, in the simulation device 5, in the simulation of theoperation of the virtual robot 8A on the virtual space, it is possibleto suppress the virtual robot 8A from colliding with the object 81 withwhich the virtual robot 8A is desired not to be caused to collide suchas a virtual peripheral device.

The simulation result of the simulation device 5 is used in the controlof the robot 8. That is, the robot control device 30 controls the robot8 on the basis of the simulation result. Consequently, it is possible tooperate the robot 8 without causing the robot 8 to collide with anobject with which the robot 8 is desired not to be caused to collidesuch as a real peripheral device. In this way, it is possible to easilyprovide a safe and high-performance robot control device 30.

Note that, in this embodiment, double regions of the first region 71 andthe second region 72 can be set. However, in the invention, triple ormore regions can be set. When the triple or more regions are set, forexample, the operating speed is limited stepwise.

Third Embodiment

FIG. 14 is a diagram for explaining a simulation of a simulation deviceaccording to a third embodiment. Note that, in FIG. 14, the inside of acell is shown in a simplified manner.

This embodiment is explained below. However, differences from theembodiments explained above are mainly explained. Explanation ofsimilarities is omitted.

The robot control device 30 in this embodiment controls the robot 8 onthe basis of a simulation result of a simulation performed by thesimulation device 5 in this embodiment explained below.

As shown in FIG. 14, in the simulation of the simulation device 5 inthis embodiment, it is possible to semi-transparently display a cell 82,which is an example of a predetermined object on a virtual space.

The “semi-transparently” does not mean that transparency is a half ofcomplete transparency but means transparency that enables visualrecognition of the inside of a target object. Complete transparency thatdisables visual recognition of the target object itself is excluded.

Consequently, for example, when CAD data or the like is captured intothe simulation device 5, it is possible to easily visually recognize theinside of the cell 82 or an object 83 such as a workbench or a worktarget object disposed on the inside of the cell 82 without performingoperation for, for example, removing the cell 82 on the virtual space.Consequently, it is possible to easily perform a simulation. It ispossible to easily perform, for example, offline teaching concerning thereal robot 8, check of a moving route of the virtual robot 8A, check ofcollision of the virtual robot 8A.

In the simulation, it is possible to set the transparency of thesemi-transparently displayed cell 82. Consequently, it is possible toadjust a balance of visibility of a contour of the cell 82 andvisibility of the inside of the cell 82. It is possible to easilyperform the simulation.

The simulation device 5 is configured to be capable of selecting a firstdisplay mode for enabling the semitransparent display and a seconddisplay mode for disabling the semitransparent display. Consequently,when it is not desired to intentionally semi-transparently display thecell 82, it is possible to not semi-transparently display the cell 82 byselecting the second display mode.

According to this embodiment explained above, it is possible to exhibitan effect same as the effect in the embodiments explained above.

Note that, in this embodiment, as an example, the cell 82 issemi-transparently displayed. However, the invention is not limited tothis. The simulation device 5 may be configured to be capable ofsemi-transparently displaying any object among a plurality of objectsother than the virtual object 8A on the virtual space. When focusing onpredetermined one object, the simulation device 5 may be configured tobe capable of semi-transparently displaying only any portion of theobject. The simulation device 5 may be configured to be capable ofsemi-transparently displaying a robot as well. The simulation device 5may be configured to be capable of semi-transparently displaying onlyany portion of the robot.

This can be realized by, for example, configuring the simulation device5 to be capable of performing the selection of the first display modeand the second display mode and the setting of the transparency in unitsin capturing the CAD data or the like into the simulation device 5.

Fourth Embodiment

FIG. 15 is a diagram for explaining a simulation of a simulation deviceaccording to a fourth embodiment.

This embodiment is explained below. However, differences from theembodiments explained above are mainly explained. Explanation ofsimilarities is omitted.

The robot control device 30 in this embodiment controls the robot 8 onthe basis of a simulation result of a simulation performed by thesimulation device 5 in this embodiment explained below.

As shown in FIG. 15, in the simulation of the simulation device 5 inthis embodiment, when a predetermined object 84 on a virtual space andthe virtual robot 8A come into contact with each other, a first mark 73different from the object 84 and the virtual robot 8A is displayed in acontact portion of the object 84 and the virtual robot 8A.

Consequently, it is possible to easily grasp the contact portion of theobject 84 and the virtual robot 8A. Consequently, it is possible toeasily perform the simulation. It is possible to easily perform, forexample, offline teaching concerning the real robot 8 and setting of amoving route of the virtual robot 8A, disposition of a virtualperipheral device, and the like.

The shape of the first mark 73 is not particularly limited and can beset as appropriate according to various conditions. In this embodiment,the shape of the first mark 73 is a sphere. The dimension of the firstmark 73 is not particularly limited and can be set as appropriateaccording to various conditions. Note that, in this embodiment, thefirst mark 73 is formed by a small sphere.

When the object 84 and the virtual robot 8A come into contact with eachother, a semitransparent second mark 74 surrounding the first mark 73 isdisplayed.

Consequently, it is possible to more easily grasp the contact portion ofthe object 84 and the virtual robot 8A.

The shape of the second mark 74 is not particularly limited and can beset as appropriate according to various conditions. In this embodiment,the shape is a sphere. The dimension of the second mark 74 is notparticularly limited and can be set as appropriate according to variousconditions. Note that, in this embodiment, the second mark 74 is formedby a small sphere having a radius larger than the radius of the firstmark 73. The center of the first mark 73 and the center of the secondmark 74 are disposed to coincide with each other.

Colors of the first mark 73 and the second mark 74 are respectively notparticularly limited and can be set as appropriate according to variousconditions. However, the color of the first mark 73 and the color of thesecond mark 74 are desirably different. Consequently, it is possible toeasily visually recognize the first mark 73.

When the object 84 and the virtual robot 8A come into contact with eachother, a coordinate of the contact portion of the object 84 and thevirtual robot 8A is displayed. In this embodiment, an X coordinate, a Ycoordinate, and a Z coordinate of the contact portion are displayed in aframe 75. Note that in an example shown in the figure, a coordinate(122, 135, 600) is displayed in the frame 75.

Consequently, it is possible to quantitatively, easily, and accuratelygrasp the position of the contact portion of the object 84 and thevirtual robot 8A.

When the object 84 and the virtual robot 8A come into contact with eachother, at least one of colors of the object 84 and the virtual robot 8A,desirably, both the colors are changed to a color different from thecolors before the contact, for example, red. In this case, the colors ofthe first mark 73 and the second mark 74 are respectively set to colorsdifferent from the color after the contact, that is, red. As the colors,predetermined colors can be respectively selected out of a plurality ofcolors.

Consequently, it is possible to easily grasp that the object 84 and thevirtual robot 8A come into contact with each other.

According to this embodiment explained above, it is possible to exhibitan effect same as the effect in the embodiments explained above.

Fifth Embodiment

FIGS. 16 and 17 are respectively diagrams for explaining a simulation ofa simulation device according to a fifth embodiment.

This embodiment is explained below. However, differences from theembodiments explained above are mainly explained. Explanation ofsimilarities is omitted.

The robot control device 30 in this embodiment controls the robot 8 onthe basis of a simulation result of a simulation performed by thesimulation device 5 in this embodiment explained below.

As shown in FIGS. 16 and 17, in the simulation of the simulation device5 in this embodiment, a margin 761 can be set in the virtual robot 8A onthe basis of the shape of the virtual robot 8A. A margin 762 can be setin the virtual robot 2A on the basis of the shape of the virtual robot2A. Similarly, a margin 771 can be set in a predetermined object 85 on avirtual space on the basis of the shape of the object 85. A margin 772can be set in a predetermined object 86 on the virtual space on thebasis of the shape of the object 86. The margin 761 is set inpredetermined thickness along the external shape of the virtual robot8A. The margin 762 is set in predetermined thickness along the externalshape of the virtual robot 2A. Similarly, the margin 771 is set inpredetermined thickness along the external shape of the object 85. Themargin 772 is set in predetermined thickness along the external shape ofthe object 86. Note that the objects 85 and 86 are respectively objectwith which the virtual robots 8A and 2A are desired to not be caused tocollide.

The thicknesses of the margins 761, 762, 771, and 772 are respectivelynot particularly limited and can be set as appropriate according tovarious conditions. The thicknesses of the margins 761, 762, 771, and772 may be the same as each other or may be different from each other.

The thickness of the margin 761 may be fixed or may be differentdepending on a part. The same applies to the thicknesses of the margins762, 771, and 772.

When focusing on the virtual robot 8A, the margin 761 set in the virtualrobot 8A is a first margin. The other three margins 762, 771, and 772are respectively second margins. In this case, the virtual robot 2A isdefined as the predetermined object on the virtual space.

Similarly, when focusing on the virtual robot 2A, the margin 762 set inthe virtual robot 2A is the first margin. The other three margins 761,771, and 772 are the second margins. In this case, the virtual robot 8Ais defined as the predetermined object on the virtual space.

That is, in a relation between the virtual robot 8A and the virtualrobot 2A, one of the virtual robot 8A and the virtual robot 2A is thevirtual robot defined in the appended claims and the other is thepredetermined object on the virtual space.

When the virtual robot 8A operates, as shown in FIG. 17, if the margin761 and any one of the other three margins 762, 771, and 772 come intocontact with each other, the operating speed of the virtual robot 8A islimited, the operation of the virtual robot 8A stops, or the virtualrobot 8A retracts in a direction in which the margin 761 separates fromthe other margin with which the margin 761 is in contact. Note that, inFIG. 17, an example is shown in which the margin 761 and the margin 771are in contact.

Consequently, it is possible to suppress the virtual robot 8A fromcolliding with the objects 85 and 86 and the virtual robot 2A.

Similarly, when the virtual object 2A operates, if the margin 762 andany one of the other three margins 761, 771, and 772 come into contactwith each other, the operating speed of the virtual robot 2A is limited,the operation of the virtual robot 2A stops, or the virtual robot 2Aretracts in a direction in which the margin 762 separates from the othermargin with which the margin 762 is in contact.

Consequently, it is possible to suppress the virtual robot 2A fromcolliding with the objects 85 and 86 and the virtual robot 8A.

Therefore, it is possible to easily perform the simulation. It ispossible to easily perform, for example, offline teaching concerning thereal robot 8.

Specific examples of the limitation of the operating speed of thevirtual robot 8A and 2A include (1) and (2) described below.

(1) The operating speed is set lower than the operating speed before thecontact of the margins. Specifically, the moving speed of the distal endportion of the virtual manipulator 10A is set lower than the movingspeed before the contact of the margins.

(2) An upper limit value of the operating speed is set smaller than theupper limit value before the contact of the margins. Specifically, anupper limit value of the moving speed of the distal end portion of thevirtual manipulator 10A is set smaller than the upper limit value beforethe contact of the margins.

In the simulation, the thicknesses of the margins 761, 762, 771, and 772can be respectively changed.

Consequently, it is possible to more surely suppress the virtual robot8A from colliding with the objects 85 and 86 and the virtual robot 2Aand more surely suppress the virtual robot 2A from colliding with theobjects 85 and 86 and the virtual robot 8A. It is possible to preventthe thicknesses of the margins 761, 762, 771, and 772 from becomingexcessively large to hinder work of the virtual robots 8A and 2A.

According to this embodiment explained above, it is possible to exhibitan effect same as the effect of the embodiments explained above.

Note that, when focusing on the virtual robot 8A and the object 85 onthe virtual space, in this embodiment, it is possible to set marginsrespectively in the virtual robot 8A and the object 85. However, theinvention is not limited to this. A margin may be able to be set only inthe virtual robot 8A. A margin may be able to be set only in the object85.

Similarly, when focusing on the virtual robot 8A and the virtual robot2A, in this embodiment, margins can be respectively set in the virtualrobots 8A and 2A. However, the invention is not limited to this. Amargin may be able to be set only in the virtual robot 8A. A margin maybe able to be set only in the virtual robot 2A.

In this embodiment, the virtual robots are configured to perform thepredetermined operation while being triggered by the contact of themargins. However, when a margin is set in only one of the virtualrobots, the virtual robots are configured to perform the predeterminedoperation while being triggered by the contact of the margin and theother virtual robot or an object as a trigger.

Sixth Embodiment

FIGS. 18 to 20 are diagrams for explaining a simulation of a simulationdevice according to a sixth embodiment.

This embodiment is explained below. However, differences from theembodiments explained above are mainly explained. Explanation ofsimilarities is omitted.

The robot control device 30 in this embodiment controls the robot 8 onthe basis of a simulation result of a simulation performed by thesimulation device 5 in this embodiment explained below.

As shown in FIGS. 18 and 19, in the simulation of the simulation device5 in this embodiment, it is possible to display a movable range of aspecific portion of the virtual manipulator 10A of the virtual robot 8A,that is, a range in which the specific portion of the virtualmanipulator 10A is movable.

The specific portion of the virtual manipulator 10A can be optionallyset. In this embodiment, the specific portion is “the distal end of thevirtual manipulator 10A”.

In this embodiment, the movable range of the distal end of the virtualmanipulator 10A is indicated by a line segment 91 in a perspective viewas shown in FIG. 18 and indicated by a line segment 92 in a plan view asshown in FIG. 19. In the perspective view shown in FIG. 18, a regionsurrounded by the line segment 91 is the movable range of the distal endof the virtual manipulator 10A. In this case, a region indicated by adotted line is a non-movable range. In the plan view shown in FIG. 19, aregion surrounded by the line segment 92 is the movable range of thedistal end of the virtual manipulator 10A. In this case, a regionindicated by a dotted line is a non-movable range.

Consequently, it is possible to easily grasp the movable range of thespecific portion of the virtual manipulator 10A, that is, the distal endof the virtual manipulator 10A. Therefore, it is possible to easilyperform the simulation. It is possible to easily perform, for example,offline teaching concerning the real robot 8 and setting of dispositionof a virtual peripheral device and the like.

Note that, as in this embodiment, in the virtual robot 8A in a state inwhich a virtual end effector is not attached to the virtual sixth arm18A, the distal end of the virtual sixth arm 18A is the distal end ofthe virtual manipulator 10A.

In the virtual robot 8A in a state in which a virtual end effector isattached to the virtual sixth arm 18A, the distal end of the virtual endeffector may be set as the distal end of the virtual manipulator 10A.The distal end of the virtual sixth arm 18A may be set as the distal endof the virtual manipulator 10A. That is, it is possible to select one ofthe distal end of the virtual end effector and the distal end of thevirtual sixth arm 18A as the distal end of the virtual manipulator 10A.

Note that other specific examples of the specific portion include aportion a predetermined distance apart from the distal end of thevirtual manipulator 10A in the proximal end direction.

The movable range of the distal end of the virtual manipulator 10A maybe displayed not only in the perspective view and the plan view but alsoin, for example, a side view, a front view, a rear view, a bottom view,and the like, and the perspective view may be configured such that thepoint of sight can be changed.

The movable range may be able to be semi-transparently displayed.Transparency of the movable range may be able to be set.

In the simulation, for each of the virtual arms, it is possible todisplay a movable range of the specific portion of the virtualmanipulator 10A, that is, the distal end of the virtual manipulator 10Aat the time when the virtual arm is turned.

In this embodiment, in any posture of the virtual robot 8A, it ispossible to display a movable range of the distal end of the virtualmanipulator 10A at the time when only the virtual first arm 12A isturned, a movable range of the distal end of the virtual manipulator 10Aat the time when only the virtual second arm 13A is turned, and amovable range of the distal end of the virtual manipulator 10A at thetime when only the virtual third arm 14A is turned.

As shown in FIG. 20, the movable range of the distal end of the virtualmanipulator 10A at the time when only the virtual first arm 12A isturned is indicated by a line segment 93 in a perspective view. Themovable range of the distal end of the virtual manipulator 10A at thetime when only the virtual second arm 13A is turned is indicated by aline segment 94 in the perspective view. The movable range of the distalend of the virtual manipulator 10A at the time when only the virtualthird arm 14A is turned is indicated by a line segment 95 in theperspective view. Note that, in FIG. 20, all of the three line segments93 94, and 95 are shown. The line segments 93, 94, and 95 areindividually shown one by one. In FIG. 20, the line segments 93, 94, 95are shown as different lines to make it easy to distinguish the linesegments from one another.

Consequently, it is possible to easily grasp the movable ranges of thedistal end of the virtual manipulator 10A respectively at the time whenonly the virtual first arm 12A is turned, at the time when only thevirtual second arm 13A is turned, and at the time when only the virtualthird arm 14A is turned. Therefore, it is possible to easily perform thesimulation. It is possible to easily perform, for example, offlineteaching concerning the real robot 8 and setting of disposition of avirtual peripheral device and the like.

Note that the line segments 93, 94 and 95 may be simultaneouslydisplayed in one image.

With this embodiment explained above, it is possible to exhibit aneffect same as the effect in the embodiments explained above.

The robot control device, the robot, and the simulation device accordingto the invention are explained above on the basis of the embodimentsshown in the figures. However, the invention is not limited to this. Thecomponents of the sections can be substituted with any components havingthe same functions. Any other components may be added.

The invention may be a combination of any two or more configurations(characteristics) in the embodiments.

In the embodiments, the fixing part of the base of the robot is, forexample, the floor in the setting space. However, the invention is notlimited to this. Besides, examples of the fixing part include a ceiling,a wall, a workbench, and a ground.

In the invention, the robot may be set in the cell. In this case,examples of the fixing part of the base of the robot include a floorsection, a ceiling section, and a wall section of the cell and aworkbench.

In the embodiments, a first surface, which is a plane (a surface) onwhich the robot (the base) is fixed, is a plane (a surface) parallel tothe horizontal surface. However, the invention is not limited to this.The first surface may be, for example, a plane (a surface) inclined withrespect to the horizontal surface and the vertical surface or may be aplane (a surface) parallel to the vertical surface. That is, the firstturning axis may be inclined with respect to the vertical direction andthe horizontal direction or may be parallel to the horizontal direction.

In the embodiments, the number of turning axes of the manipulator issix. However, the invention is not limited to this. The number ofturning axes of the manipulator may be, for example, two, three, four,five, or seven or more. In the embodiment, the number of arms (links) issix. However, the invention is not limited to this. The number of armsmay be, for example, two, three, four, five, or seven or more. In thiscase, for example, it is possible to realize a robot including sevenarms by adding an arm between the second arm and the third arm in therobot in the embodiments.

In the embodiments, the number of manipulators is one. However, theinvention is not limited to this. The number of manipulators may be, forexample, two or more. That is, the robot (a robot main body) may be aplural-arm robot such as a double-arm robot.

In the invention, the robot may be a robot of another type. Specificexamples of the robot include a horizontal multi-joint robot such as alegged walking (traveling) robot including leg sections and a SCARArobot.

In the embodiments, the robot control device and the simulation deviceare the separate devices. However, the invention is not limited to this.For example, the robot control device may have the functions of thesimulation device.

What is claimed is:
 1. A system for controlling an industrial robot,comprising: a simulation processor configured to (i) perform asimulation of movement of a virtual robot performing an operation in avirtual space, wherein the virtual robot is not a real robot, and (ii)generate and store a simulation result based on the simulation, whereinthe simulation result includes information indicating an operationprogram used to control the virtual robot during the simulation; and acontroller configured to, subsequent to storing the simulation resultindicating the operation program used to control the virtual robotduring the simulation, control actual movement of the industrial robotbased on the simulation result previously stored and generated using thevirtual robot, wherein, to generate the simulation result, thesimulation processor is configured to: define, in the virtual space, afirst region and a second region, wherein the second region is locatedinside of the first region, wherein the second region surrounds apredetermined object within the virtual space, and wherein the firstregion surrounds the second region, control movement of the virtualrobot within the virtual space, in response to a determination that apredetermined portion of the virtual robot has intruded from a regionoutside of the first region into the first region, lower an operatingspeed of the virtual robot to suppress movement of the virtual robotfurther into the first region, and in response to a determination thatthe predetermined portion of the virtual robot has intruded into thesecond region, stop the movement of the virtual robot or retract thevirtual robot from the second region to prevent collision of the virtualrobot with the predetermined object in the second region.
 2. The systemaccording to claim 1 further comprising: a memory configured to storethe simulation result.
 3. A simulation method for controlling movementof a virtual robot in a virtual space, wherein the virtual robot is nota real robot, the simulation method comprising: using a processor,generating and storing a simulation result that includes informationindicating an operation program used to control the virtual robot duringthe simulation method, generating and storing the simulation resultfurther comprising a first determining step which determines whether apredetermined portion of the virtual robot has intruded into a firstregion, wherein the first region surrounds a second region, and whereinthe second region surrounds a predetermined object within the virtualspace, a first setting step which sets an operating speed of the virtualrobot lower than the operating speed before the intrusion into the firstregion to suppress movement of the virtual robot further into the firstregion when the first determining step determines that the predeterminedportion has intruded into the first region from a region outside thefirst region, a second determining step which determines whether thepredetermined portion has intruded into the second region located insideof the first region, and a stopping step which stops the virtual robotwhen the second determining step determines that the predeterminedportion has intruded into the second region to prevent collision of thevirtual robot with the predetermined object in the second region; andsubsequent to storing the simulation result, controlling actual movementof an industrial robot based on the simulation result previously storedand generated using the virtual robot.
 4. The simulation methodaccording to claim 3 further comprising, using the processor: a secondsetting step which sets the operating speed to the operating speedbefore the intrusion into the first region when the predeterminedportion has moved out of the first region.
 5. A controlling method forcontrolling the industrial robot, the controlling method including thesimulation method of claim 3 and further comprising: a controlling stepwhich controls actual movement of the industrial robot based on thesimulation result generated using the virtual robot acquired in thesimulation method.